var express = require('express');
var router = express.Router();

// 导入shortid
const shortid = require('shortid');

// 导入moment
const moment = require('moment');
const AccountModel = require('../../module/accountModule');

// 导入判断用户是否登录的中间件
const checkLoginMiddleware = require('../../middlewares/checkLoginMiddleware');

/* GET home page. */
router.get('/', checkLoginMiddleware, function(req, res, next) {
  res.redirect('/account');
});

// 账单列表页面
router.get('/account', checkLoginMiddleware,function(req, res, next) {
  // 获取账单列表
  // let accounts = db.get('accounts').value();
  AccountModel.find().sort({ time: -1 }).exec()
  .then((data) => {
    res.render('list', { accounts: data, moment });
  }, (err) => {
    res.status(500).send('获取账单失败');
    return;
  })
  
});

// 添加账单
router.post('/account', checkLoginMiddleware,function(req, res, next) {
  // 生成id
  // let id = shortid.generate();
  // 保存数据
  // db.get('accounts').unshift({id, ...req.body}).write();
  AccountModel.create({
    ...req.body,
    time: moment(req.body.time).toDate()
  }).then((data) => {
    // 成功的提示
    res.render('success', {msg: '添加账单成功', url: '/account'});
  }, (err) => {
    res.status(500).send('添加账单失败');
    return;
  })
});

// 创建账单页面
router.get('/account/create', checkLoginMiddleware, function(req, res, next) {
  res.render('create');
  // res.send('创建账单');
});

// 删除账单
router.get('/account/:id', checkLoginMiddleware, function(req, res, next) {
  // 获取 params.id 参数
  let id = req.params.id;
  // 根据 id 删除数据
  // db.get('accounts').remove({id}).write();
  AccountModel.deleteOne({ _id: id }).then((data) => {
    // 响应成功的提示
    res.render('success', {msg: '删除账单成功', url: '/account'});
  }, (err) => {
    res.status(500).send('删除账单失败');
    return;
  })
});

module.exports = router;
